`:top
The `!Interactive Compilation Interface`! (`!ICI`!) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform production compilers into interactive research toolsets. It was developed by `F33f`_`[Grigori Fursin`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=Grigori_Fursin]`_`f during the `F33f`_`[MILEPOST project`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=MILEPOST_GCC]`_`f.`:cite-ref-cti-2-0[`F5bf`_`[2`#cite-note-cti-2]`_`f]`:cite-ref-3[`F5bf`_`[3`#cite-note-3]`_`f] The ICI framework acts as a "middleware" interface between the compiler and the user-definable plugins. It opens up and reuses the production-quality compiler infrastructure to enable program analysis and instrumentation, fine-grain program optimizations, simple prototyping of new development and research ideas while avoiding building new compilation tools from scratch. For example, it is used in `F33f`_`[MILEPOST GCC`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=MILEPOST_GCC]`_`f to automate compiler and architecture design and program optimizations based on statistical analysis and machine learning, and predict profitable optimization to improve program execution time, code size and compilation time.
>>Contents
• `F0af`_`[Developments`#developments]`_`f
• `F0af`_`[References`#references]`_`f
-─
>>Developments
ICI is now available in mainline `F33f`_`[GCC`:/page/wikibook/entry.mu`zim=wikipedia_en_all_nopic_2025-08.zim|entry_path=GNU_Compiler_Collection]`_`f since version 4.5`:cite-ref-gcc-plugins-1-1[`F5bf`_`[1`#cite-note-gcc-plugins-1]`_`f]
ICI was extended during the Google Summer of Code'2009 to enable fine-grain program optimizations including polyhedral transformations, function level run-time adaptation and collective optimization.
>>References
`:cite-note-gcc-plugins-1`!1.`! "GCC plugins". Retrieved 2017-05-30.
`:cite-note-cti-2`!2.`! `F0af`_`[↑`#cite-ref-cti-2-0]`_`f Grigori Fursin. Collective Tuning Initiative: automating and accelerating development and optimization of computing systems. Proceedings of the GCC Summit'09, Montreal, Canada, June 2009 (link)
`:cite-note-3`!3.`! `F0af`_`[↑`#cite-ref-3]`_`f Grigori Fursin, Yuriy Kashnikov, Abdul Wahid Memon, Zbigniew Chamski, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Bilha Mendelson, Ayal Zaks, Eric Courtois, Francois Bodin, Phil Barnard, Elton Ashton, Edwin Bonilla, John Thomson, Chris Williams, Michael O'Boyle. `*Milepost gcc: Machine learning enabled self-tuning compiler`* International journal of parallel programming, Volume 39, Issue 3, pp. 296-327, June 2011 (link)
`c`F0af`_`[↑ Back to top`#top]`_`f`a